using System;

namespace Televisor
{

  class Program
  {
   static void Main(string[] args)
   {
    Console.WriteLine("\tВиртуальный телевизор!");
    Console.WriteLine("=========================================\n");

    bool vozvrat = false; 
    switcher obj_sw = new switcher();  
    
   while (vozvrat == false)
   {

    Console.WriteLine("Все каналы:");
    Console.WriteLine(@" 0) Россия 1
 1) Discovery
 2) National Geographic
 3) СТС
 4) МАТЧ");
	Console.WriteLine();
    Console.WriteLine(@"Вызовите опцию введя команду:
	|описание|      |команда|
 1. Выключить Телевизор : off
 2. Ввести номер канала : w 
 3. Следующий канал     : n
 4. Предыдущий канал    : p ");
    Console.WriteLine();
 
    Console.ForegroundColor = ConsoleColor.Blue;
    Console.Write("Ввод: "); 
    Console.ForegroundColor = ConsoleColor.White;
    string input = Console.ReadLine();
    Console.WriteLine();
 

     switch (input)
     {
      case "off":
      	        obj_sw.Off();
                vozvrat = true;
                break;

      case "w":
 	        obj_sw.Write();
                break;

      case "n":
		obj_sw.Next();
                break;

      case "p":
		obj_sw.Prev();
                break;

      default:
            Console.ForegroundColor = ConsoleColor.Red;
	    Console.WriteLine("Вы ввели не ту команду!");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Повторите еще раз\n"); 
            Console.ForegroundColor = ConsoleColor.White;
            break;
	 }  
   }
  }
  }
 
  class switcher
  {
   public int channel = 0; 
   public string[] mas_chan = new string[5] {"Россия 1", "Discovery", "National Geographic", "СТС", "МАТЧ"};  

  
   public void Off()
   {
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine("Выключен телевизор!");
   }
   
   public void Write()
   { 

     Console.ForegroundColor = ConsoleColor.Yellow;
     Console.WriteLine($"Сейчас вы на канале {mas_chan[channel]}");
     Console.ForegroundColor = ConsoleColor.White;
     Console.Write("Введите номер, чтобы перейти на другой канал: ");
     channel = Convert.ToInt32(Console.ReadLine());
     
     if ( channel < 0 || channel > 4 )
     {
      Console.ForegroundColor = ConsoleColor.Red;
      Console.WriteLine($"Канала с номером {channel} не существует"); 
      Console.WriteLine("ОШИБКА!");
      Console.ForegroundColor = ConsoleColor.White;
      channel = 0;
     }
     
     else
     {
      Console.ForegroundColor = ConsoleColor.Green;
      Console.WriteLine($"Вы перешли на канал: {mas_chan[channel]} ");
      Console.ForegroundColor = ConsoleColor.White;
     } 
     
     Console.WriteLine("------------------------------------------------\n");
    
    }
   
   public void Next()
   {
    channel++;
    if (channel > 4)
    {
     channel = 0;
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine($"Вы перешли на канал: {mas_chan[channel]}");
     Console.ForegroundColor = ConsoleColor.White;
    }

    else
    {
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine($"Вы перешли на канал: {mas_chan[channel]}");
     Console.ForegroundColor = ConsoleColor.White;
    }

    Console.WriteLine("------------------------------------------------\n"); 
   } 
  
   public void Prev()
   {
    if(channel > 0)
    {
     channel--;
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine($"Вы перешли на канал: {mas_chan[channel]}");
     Console.ForegroundColor = ConsoleColor.White;
    }
    
    else
    {
     channel = 0;
      Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine($"Вы перешли на канал: {mas_chan[channel]}"); 
      Console.ForegroundColor = ConsoleColor.White;
    }
     Console.WriteLine("------------------------------------------------\n");  
   } 
  
   }

  
}
